package com.company.com;

import java.sql.PseudoColumnUsage;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class firstTime_task {
    /**
     * 随机 双色球
     */
    public static void task() {
       //随机数
        Random rdm = new Random();
        //定义长度为6的数组，
        int[] redArr = new int[6];
        //用于接收每次随机的数
        int rm ;
        //遍历数组并把每次随机的数存放在数组中
        int numb = 0;
        while (numb<6){
            rm = rdm.nextInt(33)+1;
            redArr[numb] = rm;
            numb++;
        }
        int blue = rdm.nextInt(16)+1;
        //对数组中的数据排序
        Arrays.sort(redArr);
        //将数组转换成字符转输出
        System.out.println("红球："+Arrays.toString(redArr));
        System.out.println("篮球："+blue);
    }
    /**
     * 数组扩容
     */
    public static void task2(){
        Scanner sr =new Scanner(System.in);
        System.out.println("存储数组长度：");
        boolean judge = true;
        while (judge == true){
            //判断是否输入的是整数，如果不是整数从新输入
            if (sr.hasNextInt()){
                judge =false;
            }else {
                System.out.println("请输入整数，其他类型无效！！！！");
                sr =new Scanner(System.in);
            }
        }
        //接受输入的整数
        int inpt = sr.nextInt();
        //定义数组长度键盘动态输入
        int[] arr = new int[inpt];
        //定义扩容数组 。把arr 赋值给数组，减少数组初始化，
        int[] arr2 = arr;
        System.out.println("原数组长度："+arr.length);
        System.out.println("数组存储容量 >= 容量的80%，是否扩容数组长度：Y/是  "+"N/否");
        //获取字符判断是否扩容数组
        char cha = sr.next().charAt(0);
        //遍历数组,判断当前数组容量大于数组的百分之80时
        // 对该数组的长度扩容原数组长度
        for (int i=0;i<arr.length;i++){
            if (i*1.0>(i*0.8)) {
                //设定死循环，用户可以无限次输入，当输入y 或者 N 时 judge ==true 退出循环
                while (judge == false){
                    if (cha=='y'){
                        System.out.println("请输入扩容倍数：");
                        while (judge == false){
                            //判断是否输入的是整数，如果不是整数从新输入
                            if (sr.hasNextInt()){
                                int multiple = sr.nextInt();
                                arr2 = new int[arr.length * multiple];
                                System.out.println("扩容之后的数组长度：" + arr2.length);
                                judge = true;
                            }else {
                                System.out.println("请输入整数，其他类型无效！！！！");
                                sr =new Scanner(System.in);
                            }
                        }
                    }else if (cha == 'n'){
                        System.out.println("不同意数组扩容，运行结束");
                        judge = true;
                    }else if(cha!='y'||cha!='n') {
                        System.out.println("请输入对应的选项：Y/N");
                        cha = sr.next().charAt(0);
                    }
                }
            }
        }

    }

    /**
     * 五子棋 棋盘生成   双重for循环实现
     */
    public static void task3(){
        System.out.print("请输入棋盘格子大小，范围不能超过 “ 67 ” 输入整数：");
        Scanner sr = new Scanner(System.in);
//        System.out.println(sr.nextInt());
        byte inpt=0;
        boolean judge = true;
        while (judge == true){
            if (sr.hasNextInt()){
                judge = false;
                inpt= sr.nextByte();
                if (inpt>67){
                    System.out.println("超出范围，请从新输入：");
                    judge = true;
                }
            }else  {
                System.out.print("输入整数，其他类型无效！！请输入：");
                sr = new Scanner(System.in);
            }
        }
        //打印棋盘的列
        for (byte i=0;i<=inpt;i++){
            if (i==0){
                System.out.print(" ");//当i=0;输出 空格
            }else {
                byte s = (byte)(i-1);// 因为要0开始 所以i-1；
                if (s>9){
                    if (s>38){
                        System.out.print((char)(s+25));
                    }else  {
                        System.out.print((char)(s+87));//如果大于9的时候  强转成char类型 ASCLL表对应的字符
                    }

                }else {
                    System.out.print(s);
                }
            }
            //打印棋盘的行
            for (byte j=0;j<=(inpt-1);j++){
                if (i>0){
                    System.out.print("  "+"+");
                }else {
                    if (j>9){
                        if (j>38){
                            System.out.print("  "+(char)(j+25));
                        }else  {
                            System.out.print("  "+(char)(j+87));
                        }
                    }else {
                        System.out.print("  "+j);
                    }
                }
            }
            System.out.println();
        }
    }


}
